54.在手机上使用PaddleMobile实现图像分类 |
您所在的位置:网站首页 › ubuntu 2004ip地址配置 › 54.在手机上使用PaddleMobile实现图像分类 |
54.1 编译paddle-mobile库
1)编译Android能够使用的CPP库: 编译Android的paddle-mobile库,可选择使用Docker编译和Ubuntu交叉编译,这里介绍使用Ubuntu交叉编译paddle-mobile库。 注:在Android项目,Java代码调用CPP代码,CPP的函数需要遵循一定的命名规范,比如Java_包名类名对应的Java的方法名。 目前官方提供了5个可以给Java调用的函数,该代码在:paddle-mobile/src/jni/paddle_mobile_jni.cpp,如果想要让这些函数能够在自己的包名下的类调用,就要修改CPP的函数名称修改如下: JNIEXPORT jboolean JNICALL Java_com_baidu_paddle_PML_load(JNIEnv *env, jclass thiz, jstring modelPath) { ANDROIDLOGI("load invoked"); bool optimize = true; return getPaddleMobileInstance()->Load(jstring2cppstring(env, modelPath), optimize); } 项目的包名为com.example.paddlemobile1,在这个包下有一个ImageRecognition.java的程序来对应这个CPP程序,那么修改load函数如下: JNIEXPORT jboolean JNICALL Java_com_example_paddlemobile1_ImageRecognition_load(JNIEnv *env, jclass thiz, jstring modelPath) { ANDROIDLOGI("load invoked"); bool optimize = true; return getPaddleMobileInstance()->Load(jstring2cppstring(env, modelPath), optimize); } 使用Ubuntu交叉编译paddle-mobile库 1、下载和解压NDK。 wget https://dl.google.com/android/repository/android-ndk-r17b-linux-x86_64.zip unzip android-ndk-r17b-linux-x86_64.zip2、设置NDK环境变量,目录是NDK的解压目录。 export NDK_ROOT="/home/test/paddlepaddle/android-ndk-r17b"设置好之后,可以使用以下的命令查看配置情况。 root@test:/home/test/paddlepaddle# echo $NDK_ROOT /home/test/paddlepaddle/android-ndk-r17b3、安装cmake,需要安装较高版本的,笔者的cmake版本是3.11.2。 下载cmake源码 wget https://cmake.org/files/v3.11/cmake-3.11.2.tar.gz解压cmake源码 tar -zxvf cmake-3.11.2.tar.gz进入到cmake源码根目录,并执行bootstrap。 cd cmake-3.11.2 ./bootstrap最后执行以下两条命令开始安装cmake。 make make install安装完成之后,可以使用cmake --version是否安装成功. root@test:/home/test/paddlepaddle# cmake --version cmake version 3.11.2 CMake suite maintained and supported by Kitware (kitware.com/cmake).4、克隆paddle-mobile源码。 git clone https://github.com/PaddlePaddle/paddle-mobile.git5、进入到paddle-mobile的tools目录下,执行编译。 cd paddle-mobile/tools/ sh build.sh android(可选)如果想编译针对某一个网络编译更小的库时,可以在命令后面加上相应的参数,如下: sh build.sh android googlenet6、最后会在paddle-mobile/build/release/arm-v7a/build目录下生产paddle-mobile库。 root@test:/home/test/paddlepaddle/paddle-mobile/build/release/arm-v7a/build# ls libpaddle-mobile.solibpaddle-mobile.so就是我们在开发Android项目的时候使用到的paddle-mobile库。 大数据视频推荐: 网易云课堂 CSDN 人工智能算法竞赛实战 AIops智能运维机器学习算法实战 ELK7 stack开发运维实战 PySpark机器学习从入门到精通 AIOps智能运维实战 腾讯课堂 大数据语音推荐: ELK7 stack开发运维 企业级大数据技术应用 大数据机器学习案例之推荐系统 自然语言处理 大数据基础 人工智能:深度学习入门到精通 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |